package com.hb.core.pojo.center.au.entity;

import com.baomidou.mybatisplus.annotation.TableName;

import java.time.LocalDateTime;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hb.core.pojo.parent.MPCommonEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 用户扩展信息表
 * </p>
 *
 * @author zhaojk
 * @since 2021-11-29
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("au_user_ext")
public class UserExt extends MPCommonEntity {

    /**
     * 用户ID(关联jnpf用户ID)
     */
    private Long userId;

    /**
     * 性别(1: 男, 2: 女)
     */
    private Integer exSex;

    /**
     * 出生日期
     */
    @JsonFormat(shape= JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime birthday;

    /**
     * 所在地区(省)
     */
    private String province;

    /**
     * 所在地区(市)
     */
    private String city;

    /**
     * 民族
     */
    private String national;

    /**
     * 政治面貌
     */
    private String political;

    /**
     * 健康状况
     */
    private String healthy;

    /**
     * 证件照片
     */
    private String licencePic;

    /**
     * 身份证附件
     */
    private String idFile;

    /**
     * 传真
     */
    private String fax;

    /**
     * 个人邮编
     */
    private String personalPostcode;

    /**
     * 通讯地址
     */
    private String address;

    /**
     * 最高学历
     */
    private String lastEdu;

    /**
     * 毕业时间
     */
    @JsonFormat(shape= JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime  eduDate;

    /**
     * 毕业院校
     */
    private String eduCollege;

    /**
     * 邮编
     */
    private String postcode;

    /**
     * 所属专业类别
     */
    private String major;

    /**
     * 工作履历
     */
    private String workResume;

    /**
     * 开户银行名称
     */
    private String bankName;

    /**
     * 银行账号
     */
    private String bankAccount;

    /**
     * 开户行地址
     */
    private String bankAddress;

    /**
     * 办公电话
     */
    private String officePhone;

    /**
     * 参数验证方法
     * 所有的继承该类的DTO对象必须在调用时重写该方法
     * 该方法中验证的字段对应数据库中不能为空的字段
     *
     * @param fieldNames
     * @return
     */
    @Override
    public String paramsValid(String... fieldNames) {
        return super.paramsValid("userId");
    }

}
